package com.flyme.module.base.provider.service;

import com.flyme.core.base.supper.entity.EntityMap;
import com.flyme.core.base.supper.service.IBaseService;
import com.flyme.module.base.client.dto.SysUserDto;
import com.flyme.module.base.client.entity.SysUser;

import java.util.List;
import java.util.Map;

/**
 * 系统用户资料管理
 *
 * @author: zyf
 * @date: 2018/10/24 16:38
 * @description:
 */
public interface SysUserService extends IBaseService<SysUser> {
    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    EntityMap findByUserId(Long userId);

    /**
     * 依据登录名查询系统用户信息
     *
     * @param username
     * @return
     */
    SysUser findByUserName(String username);

    /**
     * 依据手机号查询用户
     *
     * @param mobile
     * @return
     */
    SysUser findByMobile(String mobile);


    /**
     * 删除用户
     *
     * @param userIds
     * @return
     */
    Boolean delByIds(Long[] userIds);

    /**
     * 更改用户状态
     *
     * @param id
     * @return
     */
    Boolean updateStatus(String id, int status);

    /**
     * 更新手机号
     */
    boolean updateMobile(long userId, String oldmobile,String newmobile);

    /**
     * 7日注册统计
     */
    List<EntityMap> getSevenSale(String userType);

    List<Map<String,Object>> getSelectedUser(String userType,String userIds);

    /**
     * 根据用户查询学分
     */
    EntityMap findByUser(Long userId);

    /**
     * 更新用户融云token
     */
    boolean updateRong(long userId, String rongToken);

    /**
     * 根据用户
     */
    List<String> selectAllCompany();

    /**
     * 根据部门查询对应的用户
     */
    List<String> selectByDept(String[] deptIds);

    /**
     * 统计某几个部门人数
     */
    Integer countByDept(List<Long> deptIds);

    /**
     * 添加员工
     */
    boolean addStaffs(SysUserDto user,Long companyId);

    /**
     * 根据身份证号查询用户
     */
    SysUser findByIdCard(String idCard);
}
